GIF2550C by Martyn Dryden ================ This program for Atari ST series computers is designed to print GIF (Graphics Interchange Format) files in colour on an H-P DeskJet 550C printer. There are no fancy options or user adjustments: pictures are scaled to fit the page, and that's that. It has no particular monitor or memory requirements, should work on any ST, and will print any size GIF file, regardless of whether your ST can display it. It will alert you to any problem in decoding the GIF. How To Use ========== Simply double-click on GIF2550C.PRG, and select the file you're interested in, using the File Selector. Alternatively, if your Desktop supports it (like Neodesk 3, or TOS version 2 or above), you can drag-and-drop the target GIF file onto the program icon. Or you can install GIF2550C.PRG as the application for GIF files (see your ST user manual for details), and then double-click on the GIF file you wish to print. After a short pause, during which the program examines the GIF file and displays its type, size and number of colours, two alert boxes appear in succession. The first asks you whether you want Draft or High quality printing. The second asks you which type of media you are using: Transparency, Glossy, or Plain paper. The defaults (which can be selected by pressing Return in each case) are for printing in High quality on Plain paper. After you select your two options, the program goes to work, printing your picture. It takes a few minutes, depending on the size of the picture, the type of media, and the model of ST you're using. If you wish to stop printing, press the ST's UNDO key. The filename, size and number of colours, and a short message about the program, are printed below the picture. When printing is finished, the page is ejected from the printer, and the program exits. If an error occurs, such as a problem decoding the GIF, a disk error or a printer error, or the program is stopped using UNDO, then a message is displayed to this effect, and the program waits for you to press a key before exiting. Thanks for using GIF2550C, and I hope you enjoy it. Program notes ============= As you may know, GIF stands for 'Graphics Interchange Format'. This is an industry-standard picture file format developed for the CompuServe online system with the aim of making it possible for users of different computers to freely exchange picture files. GIF files are compressed using a version of the Lempel-Ziv-Welch method (as used in LHARC). This is an efficient way to compress arbitrary data. The files take a minimum of disk space for storage, and/or online time for transmission via modem. There is very little to be gained by trying to compress them further. The format allows pictures to be any size, and to have up to 256 colours, chosen from 16.7 million possible colours. The specification is copyright by CompuServe, but freely available to programmers. GIF2550C has printed all the GIF files I've tried on it, with no problems. Unlike some other programs, it will work with both the GIF87a and GIF89a file specifications (and any future variations, as far as I can tell). It will gracefully handle (ignore) any extension blocks in the file. However, it will definitely not work with 'Interlaced' GIF files - those designed to be progressively displayed while being downloaded from bulletin boards (using suitable software). In these files, the scan-rows are not stored in sequential order. GIF2550C requires sequential scan-rows, because it does not store the picture in memory, but discards each row after printing it (to allow large GIFs to be printed using minimum memory). This shouldn't be a problem: I've never actually seen an interlaced GIF file. If you should venture upon one, my suggestion would be to load it into a program such as ViewGIF or GEMview, and re-save it. Options and adjustments ... there aren't any, except for Quality and Media as described earlier. The aim was to keep it simple and provide the best possible all-round results. For the technical ... the program uses the Bayer (fixed pattern) dither method to turn the GIF picture's 256 24-bit colours into a pattern of dots in the DeskJet's four ink colours. Before doing so, it applies gamma correction to the colours. The value of Gamma is fixed at 0.35, based on a subjective assessment. The GIF decoder is based on DECODE.C, an LZW decoder for GIF, copyright (c) 1987 by Steven A. Bennett. In accordance with H-P's recommendations, a gap of two pixels is left between any dot of Black ink and an adjacent coloured dot. The inks are chemically incompatible and should not be allowed in contact. The Black ink is used only for areas of pure black (RGB = 000) in the picture. Although it would be possible to dither the black ink to create shades of grey, in my experience such areas have a strange appearance, presumably because of the chemical difference between the black and coloured inks mentioned above. Therefore, greys are dithered from coloured ink. The difference in the Quality and Media settings are in the levels of Shingling and Depletion applied, as follows: Plain Glossy Transparency ===== ====== ============= Draft Shingling: 0 Shingling: 25% Shingling: 50% quality Depletion: 50% Depletion: 25% Depletion: 25% Best Shingling: 50% Shingling: 25% Shingling: 25% quality Depletion: 25% Depletion: 0 Depletion: 0 These are in accordance with H-P's recommendations as far as I can understand them. Grey balancing is performed by the printer. If you haven't already tried it, please print one (at least) of your favourite GIFs on H-P's special paper, 51636J LX JetSeries Glossy Paper. You may have received a sample of this paper with your printer. It's not cheap, but it's so-o-o-o good! Legal Matters ============= This program was written by Martyn Dryden and is copyright (c) 1993, Rufus Developments. It may be freely used and distributed, provided that (1) neither the program nor this file is modified in any way, (2) no charge is made for the program, other than a reasonable distribution charge, and (3) Rufus Developments will not be liable for damage, including consequential damage, arising from its use. Permission is required for commercial distribution, including magazine cover disks. (Such permission will not be unreasonably withheld.) GIF and 'Graphics Interchange Format' are Trade Marks of CompuServe, Incorporated, an H & R Block Company. Rufus Developments is a Trade Mark. Rufus is an Abyssinian cat.